Nowadays many enterprises aim to reduce the business cost associated to IT infrastructure and at the same time trying to convert capital expenses into operational expenses that provide more flexibility and control on the software.
In this environment, many software vendors are providing alternative solutions providing their customers not only with software releases to be installed on the premises of their customers but also delivering their software offerings as a service solution (SaaS=Software as a Service) in which the core of the software product is hosted in a centralized Cloud data center or Cloud computing environment with a limited need of installations on the customer site. Typically, the only requirement may be an agent to be installed on the client side to work and communicate with the central (Cloud) infrastructure.
Typically, these offerings provide the Cloud infrastructure which may be relatively close in a geographical sense to the customer site for performance optimization to reduce network latency and optimize the user experience, and also for an easier management of offering maintenance windows. So, if for example, an Italian customer requires a new offering instance of the Cloud infrastructure, it may be created in an Italian or at least European datacenter in order to optimize the solution performance and reliability and also to comply with legal restrictions.
The problem which may happen in such a client/server approach is that the client node, which is maintained on the customer premise, may change its location, with a potential impact on the software offering's reliability and performance. Moreover, it may also happen that communication problems occur between the client and the server in the Cloud and an alternative communication root may be required, especially, if the client or client computer running the agent in communication with the Cloud datacenter is moved to a different continent.
Several approaches to Cloud computing environments and service access have been described. E.g., document U.S. Pat. No. 8,271,655 B2 describes a system and method to provide Cloud roaming services. The system allows Cloud services to be offered to requesters that are abstracted from the underlying Cloud provider used to fulfill those services. The described system provides the ability for Cloud providers to be dynamically associated with currently available Cloud services for requesters.
Document US 2013/0080613 A1 discloses a method of dynamically routing requests within multiple Cloud computing networks. The method includes receiving a request for an application from a user device, forwarding the request to an edge server within a content delivery network (CDN), and analyzing the request to gather metrics about responsiveness provided by the multiple Cloud computing networks running the application. The method further includes analyzing historical data for the multiple Cloud computing networks regarding performance of the application, based on the performance metrics and the historical data, determining an optimal Cloud computing network within the multiple Cloud computing networks to route the request, routing the request to the optimal Cloud computing network, and returning the response from the optimal Cloud computing network to the user device.
However, mobile computers connect to networks frequently from different access points and potentially also from different geographies. Therefore, there is a need to optimize roaming for SaaS services within service level agreements.